Applications such as visual odometry, dense reconstruction and colored point cloud segmentation are fundamentally dependent on accurate calibrations in order to extra metrical data from images. The MATLAB and OpenCV packages are two popular systems for calibrating lenses. However, they can be error prone, especially for lenses with significant distortion. This stems from the fact that the quality of a calibration is dramatically affected by the user's choice of calibration images. A user who chooses poor calibration target positions may find the resulting model generalizes poorly to unseen examples. This challenge is particularly acute for novice users, who are not aware of the properties of the underlying estimation and optimization methods, or end-users in dramatically different fields. Even experts may be unsure that the positions they have chosen will yield a sufficiently accurate calibration, as the number of images needed is not constant across lenses and should vary with the quality of the constraints. Consequently, standard practice is to collect many more images than necessary and verify that the model parameter uncertainty and training error are low; if the results are unsatisfactory, the calibration is repeated or updated with additional images. This process is unreliable, and not very satisfying from a theoretical standpoint.
Therefore, the primary goal of this disclosure is to increase calibration repeatability and accuracy in a more principled fashion. This section provides background information related to the present disclosure which is not necessarily prior art.